package Terminal.TechnicalServices.Mapper;

import Terminal.Entity.Dominio.ELineaRegola;
import Terminal.Entity.Dominio.ELineaSottoprogetto;
import Terminal.Entity.Dominio.ELineaTask;
import Terminal.Entity.IceClasses.ELineaRegolaI;
import Terminal.Entity.IceClasses.ELineaSottoprogettoI;

public class MLineaSottoprogetto implements Mapper {

	@Override
	public ELineaSottoprogettoI getIceObj(Object hibObj) {

		ELineaSottoprogettoI iceLineaSottoprogetto = null;
		MLineaTask lineaMapper = new MLineaTask();		
		
		if ( hibObj instanceof ELineaSottoprogetto)
		{
			iceLineaSottoprogetto = new ELineaSottoprogettoI();
			
			iceLineaSottoprogetto.costo = ((ELineaRegola) hibObj).getCosto();
			iceLineaSottoprogetto.descrizione = ((ELineaRegola) hibObj).getDescrizione();
			iceLineaSottoprogetto.misura = ((ELineaRegola) hibObj).getMisura();
			
			for( ELineaTask hibLine: ((ELineaSottoprogetto) hibObj).getLineetask() )
				iceLineaSottoprogetto.lineeTask.add( lineaMapper.getIceObj(hibLine) );			
		}
		
		return iceLineaSottoprogetto;
	}

	@Override
	public ELineaSottoprogetto getHibObj(Object iceObj) {

		ELineaSottoprogetto hibLineaSottoprogetto = null;
		MLineaTask lineaMapper = new MLineaTask();		
		
		if ( iceObj instanceof ELineaSottoprogettoI)
		{
			hibLineaSottoprogetto = new ELineaSottoprogetto();
			
			hibLineaSottoprogetto.setCosto(((ELineaRegolaI) iceObj).costo);
			hibLineaSottoprogetto.setDescrizione(((ELineaRegolaI) iceObj).descrizione);
			hibLineaSottoprogetto.setMisura(((ELineaRegolaI) iceObj).misura);
		
			for(EntityCondivise.ELineaTask iceSubPrjLine: ((ELineaSottoprogettoI) iceObj).lineeTask)
				hibLineaSottoprogetto.getLineetask().add( lineaMapper.getHibObj(iceSubPrjLine) );
		
		}
		return hibLineaSottoprogetto;
		
	}
	
}
